package top.dingwen.io.treasure.sensitive.result;

import com.github.houbb.sensitive.annotation.strategy.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import top.dingwen.io.treasure.base.result.BaseResult;

import java.io.Serializable;

/**
 * 脱敏用户结果
 *
 * @author dingwen
 * @since 2024/11/22 11:30
 */
@Getter
@Setter
@ToString
public class SensitiveUserResult extends BaseResult implements Serializable {

    /**
     * 用户名
     * <p>中文名称脱敏</p>
     */
    @SensitiveStrategyChineseName
    private String username;

    /**
     * 密码
     * <p>密码脱敏</p>
     */
    @SensitiveStrategyPassword
    private String password;

    /**
     * 护照
     * <p>护照脱敏</p>
     */
    @SensitiveStrategyPassport
    private String passport;

    /**
     * 身份证号码
     * <p>身份证脱敏</p>
     */
    @SensitiveStrategyIdNo
    private String idNo;

    /**
     * 银行卡
     * <p>卡号脱敏</p>
     */
    @SensitiveStrategyCardId
    private String bandCardId;

    /**
     * 手机号
     * <p>手机号脱敏</p>
     */
    @SensitiveStrategyPhone
    private String phone;

    /**
     * 电子邮件
     * <p>电子邮件脱敏</p>
     */
    @SensitiveStrategyEmail
    private String email;

    /**
     * 地址
     * <p>地址脱敏</p>
     */
    @SensitiveStrategyAddress
    private String address;

    /**
     * 生日
     * <p>生日脱敏</p>
     */
    @SensitiveStrategyBirthday
    private String birthday;

    /**
     * gps
     * <p>GPS 脱敏</p>
     */
    @SensitiveStrategyGps
    private String gps;

    /**
     * ip
     * <p>IP脱敏</p>
     */
    @SensitiveStrategyIp
    private String ip;

    /**
     * 全部脱敏
     * <p>全部脱敏</p>
     */
    @SensitiveStrategyMaskAll
    private String maskAll;

    /**
     * 一半脱敏
     * <p>一半脱敏</p>
     */
    @SensitiveStrategyMaskHalf
    private String maskHalf;

    /**
     * 指定范围脱敏
     * <p>指定范围脱敏</p>
     */
    @SensitiveStrategyMaskRange
    private String maskRange;
}
